package com.unicom.mec.device.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.unicom.mec.device.vo.EdgeNodeStatisticVo;
import com.unicom.mec.device.vo.EdgeNodeVo;
import com.unicom.mec.device.vo.EditEdgeNodeVo;

import java.util.List;

/**
 * 边缘节点业务处理接口
 *
 * @author 刘亮武
 * @date 2020年06月17日
 */
public interface EdgeNodeService {

    void findEdgeNodesForTask();

    /**
     * 查询边缘节点信息
     *
     * @param tenantId 租户主键
     * @return
     */
    List<EdgeNodeVo> findEdgeNodes(Long tenantId);

    /**
     * 查询边缘节点统计信息
     *
     * @param tenantId 租户主键
     * @return
     */
    EdgeNodeStatisticVo findEdgeNodeStatistic(Long tenantId);

    /**
     * 查询已接入边缘节点列表
     *
     * @param tenantId 租户主键
     * @param page     页码
     * @param pageSize 每页条数
     * @return
     */
    Page<EdgeNodeVo> findAccessEdgeNodes(Long tenantId, Integer page, Integer pageSize);

    /**
     * 查询未接入边缘节点列表
     *
     * @param tenantId 租户主键
     * @param page     页码
     * @param pageSize 每页条数
     * @return
     */
    Page<EdgeNodeVo> findNoAccessEdgeNodes(Long tenantId, Integer page, Integer pageSize);

    /**
     * 根据主键获取边缘节信息
     *
     * @param id 主键
     * @return
     */
    EdgeNodeVo findEdgeNodeById(Long id);

    /**
     * 编辑边缘节点
     * @param editEdgeNodeVo 边缘节点修改信息分装
     */
    void editEdgeNode(EditEdgeNodeVo editEdgeNodeVo);
}